import {ReqGetBaseCategoryList,ReqGetFloor,ReqGetSlide} from "@/api"


// 存储公共数据
const state = {
    categoryList:[],   // 三级分类数据
    slide:[],   //首页轮播图数据
    floor:[]   //首页楼层数据

}


//同步更新 state 中的数据,  一般 mutations中的方法名全部为大写。
const mutations = {
    // 更新 state categoryList 方法
    SAVE_CATEGORY_LIST(state,value){
        state.categoryList = value.slice(0,15);
    },
    // 更新 state  slide 方法
    SAVE_SLIDE_LIST(state,value){
        state.slide = value;
    },
    //更新state  floor 数据
    SAVE_FLOOR_LIST(state,value){
        state.floor = value;
    }

}


//写异步方法，调用 mutations 中的同步方法来更新state数据
const actions = {
    //请求 三级分类数据
    async GetCategoryList({commit}){
        //调用api请求方法
        let data = await ReqGetBaseCategoryList();
        // console.log(result);
        //调用 mutations 方法更新state数据
        commit("SAVE_CATEGORY_LIST",data);

    },
    // 请求首页轮播图数据
    async GetSlide({commit}){
        let data = await ReqGetSlide();
        commit("SAVE_SLIDE_LIST",data);
    },
    //请求首页 楼层数据
    async GetFloorList({commit}){
        let data = await ReqGetFloor();
        commit("SAVE_FLOOR_LIST",data);
    }
}


//类似于 组件中的计算属性
const  getters = {

}


//暴露 home  模块
export default {
    namespaced:true,
    state,
    mutations,
    actions,
    getters
}